
-- 设置项目名称
set_project("pikapython")

-- 添加目标
target("pika")
    -- 设置目标类型为可执行文件
    set_kind("binary")
    -- set_toolchains("x86_64-w64-mingw32-gcc.exe")
    -- set_toolchains("gcc")

    -- 编译前将py文件转化成.c文件
    before_build(function (target)
        -- 执行清理旧文件的命令，并等待其完成
        os.exec("bash ./on_build.sh")
        
    end)

    -- 添加源文件
    -- add_files("PikaPython/**/*.c")  -- 递归查找所有 .c 文件
    add_files("PikaPython/pikascript-core/*.c")  
    add_files("PikaPython/pikascript-api/*.c")  

    
    add_files("PikaPython/pikascript-lib/PikaStdDevice/*.c")  
    add_files("PikaPython/pikascript-lib/PikaStdLib/*.c")  
    add_files("PikaPython/pikascript-lib/network/*.c")  
    add_files("PikaPython/pikascript-lib/socket/*.c")  
    add_files("PikaPython/pikascript-lib/re/*.c")  
    add_files("PikaPython/pikascript-lib/os/*.c")  
    add_files("PikaPython/pikascript-lib/struct/*.c")  
    add_files("PikaPython/pikascript-lib/_thread/*.c") 
    add_files("PikaPython/pikascript-lib/time/*.c") 
    add_files("PikaPython/pikascript-lib/queue/*.c")
    -- add_files("PikaPython/pikascript-lib/requests/*.c") 

    add_files("PikaPython/pikascript-lib/threading/*.c") 
    add_files("PikaPython/pikascript-lib/collections/*.c") 
    add_files("PikaPython/pikascript-lib/PikaPlatformEx/*.c") 


     
    add_files("PikaPython/pikascript-lib/Math/*.c") 
    add_files("main.c")  -- 添加主文件

    -- 添加头文件搜索路径
    add_includedirs(".")
    add_includedirs("PikaPython/pikascript-core")
    add_includedirs("PikaPython/pikascript-api")
    add_includedirs("PikaPython/pikascript-lib/socket")
    add_includedirs("PikaPython/pikascript-lib/PikaPlatformEx")
    add_includedirs("PikaPython/pikascript-lib/PikaStdDevice")
    add_includedirs("myclib/")



    -- 设置编译选项（如果有特定的编译选项，可以在这里添加）
    -- 例如：add_cflags("-std=gnu11", "-O2", "-g")
    cflags = " -DPIKA_CONFIG_ENABLE" .. " -DPIKA_HAL_CIRCULAR_QUEUE_MUTEX_ENABLE"
    add_cflags(cflags, "-O1")
    

    -- 设置链接选项
    -- 查找并链接 Threads 库
    add_links("pthread")

    -- 如果需要设置特定的输出目录或文件名
    set_targetdir(".")  -- 输出目录
    set_basename("pika")  -- 输出文件名

    -- 如果有其他自定义构建步骤，可以在这里添加
    -- 例如：before_build(function (target)
    --         os.execv("some_pre_build_script.sh")
    --     end)

-- 如果需要全局配置，可以在这里添加
-- 例如：add_cxxflags("-std=c++11", "-Wall", "-Wextra")